草庐IT

C++11 auto 和 size_type

全部标签

c++ - 在 C++(或 C++11)中是否有与 C# 中的 @ 等价的东西?

这个问题在这里已经有了答案:WhatistheC++equivalentoftheC#@symbolprefixingstrings?(3个答案)关闭9年前。在C#中我们可以用@定义一个复杂的字符串stringstr=@"Thisisthefirstline.\r\nThisisstillthefirstline";在C++中怎么样?如果我们有这样的东西,我们不需要对所有特殊字符使用转换符号“\”。

C++11 std::generate 和 std::uniform_real_distribution 调用两次给出了奇怪的结果

在不同的容器上从STL调用std::generate算法两次产生相同的结果。假设我想用-1之间的随机数填充两个float组。和1.:std::arrayx;std::arrayy;std::random_devicerd;std::mt19937_64gen(rd());std::uniform_real_distributiondis(-1.f,1.f);autorand=std::bind(dis,gen);std::generate(x.begin(),x.end(),rand);std::generate(y.begin(),y.end(),rand);您可以在这里进行测试:h

C++11:std::bind 因 lambda 而崩溃

为什么这段代码会崩溃?#include#includeintmain(intargc,constchar*argv[]){std::functionfunction=[](int){};autobinding=std::bind(function,10);std::functionjobFunctor=binding;//crashesherewithEXC_BAD_ACCESSreturn0;}将绑定(bind)的结果转换为jobFunctor时,std::function构造函数中存在无限堆栈递归。我正在运行MacOSX10.8.5,我使用Xcode5.0.2使用libc++编译此

c++ - boost .python : Argument types did not match C++ signature

我在python中调用C++函数时遇到一个奇怪的问题。我公开了一个我想从中调用函数的类:class_>("MyClass",init())//....def("someFunc",&MyClass::someFunc);我得到一个std::shared_ptr来自另一个类的成员变量,该类通过.def_readonly(...)公开当我尝试调用该函数时,出现以下错误:File"pytest.py",line27,intest_funccu.someFunc("string")Boost.Python.ArgumentError:PythonargumenttypesinMyClass.s

标准库中值和对象的 C++11 示例?

在C++113p3中声明:Anentityisavalue,object,reference,function,enumerator,type,classmember,template,templatespecialization,namespace,parameterpack,orthis.在17.6.1.1p1中声明:TheC++standardlibraryprovidesdefinitionsforthefollowingtypesofentities:macros,values,types,templates,classes,functions,objects.Whatisa

C++11 原子类和操作——我说得对吗

我的以下假设是否正确:我不需要显式同步对std::atomic的访问来自任何平台上不同线程的对象与我自己的同步对象std::atomic操作可以是无锁的或非无锁的,具体取决于平台std::atomic_bool和std::atomic(以及其他类似的类型)实际上是相同的东西std::atomic_flag是唯一按照标准保证平台无关的无锁操作的类另外,我在哪里可以找到有关std::memory_order的有用信息?以及如何正确使用它? 最佳答案 让我们一一过一遍。我不需要显式同步对std::atomic的访问来自任何平台上不同线程的

C++1y/14 : auto variable templates?

下面的C++1y/C++14程序格式错误吗?templateconstexprautoX=42;intmain(){static_assert(X==42,"");}为什么/为什么不?Clangtrunk提示说:error:invalidoperandstobinaryexpression('auto'and'int') 最佳答案 这是clang中的一个错误,现在已修复:http://llvm.org/bugs/show_bug.cgi?id=19152 关于C++1y/14:autov

C++11:v = { } 和 v { } 之间的区别

这个问题在这里已经有了答案:Are={}and{}-styleinitializationsthesameinC++11?(3个答案)关闭8年前。请问下面两种说法有什么区别吗://C++11std::vectord{1,2,3};std::vectord={1,2,3};在这两种情况下,序列构造函数都会被调用:classA{public:inta;A(){coute){coute){cout

C++ 从 ‘const type* const’ 到 ‘type*’ 的无效转换

我有一个非常愚蠢的问题(我认为)。很长时间没有用C++编码,但我无法弄清楚这个问题。我有这个类:#includeclassNode{private:QList_adjacent;public:Node();boolisConnectedTo(Node*n)const;};isConnectedTo()的实现:boolNode::isConnectedTo(Node*n)const{return_adjacent.contains(n)&&n->_adjacent.contains(this);}我在return行中收到以下错误:Node.cpp:Inmemberfunction‘con

c++ - 范围基数并插入 vector C++11

是否可以在迭代C++11时更改vector的大小?显然迭代器将失效,但是否仍可以使用以下干净的语法?std::vectorvec;for(autoelem:vec){if(condition(elem)){new_elem=function(elem);vec.insert(iterator_associated_with_elem+1,new_elem);}//Don'tinsertoncondition(new_elem)}如果不是,完成此任务的最干净的代码是什么? 最佳答案 不,你不能。标准要求基于raged的​​for的行为